package com.ruoyi.order.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.base.BaseVO;
import com.ruoyi.order.domain.dto.OrderInfoSnapshotDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单详情对象 order_info
 *
 * @author ghostmen
 * @date 2024-11-03
 */
@Data
@ApiModel(value = "OrderInfoAppDetailsVO对象", description = "订单详情对象")
public class OrderInfoAppDetailsVO extends BaseVO {
    private static final long serialVersionUID = 1L;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    private Long orderId;

    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderNum;

    /**
     * 订单价格
     */
    @ApiModelProperty(value = "订单价格")
    private BigDecimal orderPrice;

    /**
     * 下单时间
     */
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /**
     * 订单超时时间
     */
    @ApiModelProperty(value = "订单超时时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderTimeOut;

    /**
     * 实付金额
     */
    @ApiModelProperty(value = "实付金额")
    private BigDecimal payAmount;

    /**
     * 支付时间
     */
    @ApiModelProperty(value = "支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /**
     * 订单状态:1:未付款；2：已付款；3：已完工
     */
    @ApiModelProperty(value = "订单状态:1:未付款；2：已付款；3：已完工")
    private Integer orderStatus;

    /**
     * 订单状态:1:未付款；2：已付款；3：已完工
     */
    @ApiModelProperty(value = "订单状态:1:未付款；2：已付款；3：已完工")
    private String orderStatusName;

    /**
     * 订单取消时间
     */
    @ApiModelProperty(value = "订单取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date cancelOrderTime;

    /**
     * 订单开始时间
     */
    @ApiModelProperty(value = "订单开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderBeginTime;

    /**
     * 订单完成时间
     */
    @ApiModelProperty(value = "订单完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderFinishTime;

    /**
     * 任务id
     */
    @ApiModelProperty(value = "任务id")
    private Long taskId;

    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    private String taskName;

    /**
     * 状态：0:草稿；1：发布；2：完成；3：开始
     */
    @ApiModelProperty(value = "状态：0:草稿；1：发布；2：完成；3：开始")
    private Integer taskState;

    /**
     * 状态：0:草稿；1：发布；2：完成；3：开始
     */
    @ApiModelProperty(value = "状态：0:草稿；1：发布；2：完成；3：开始")
    private String taskStateName;

    /**
     * 下单用户
     */
    @ApiModelProperty(value = "下单用户")
    private Long orderUserId;

    /**
     * 下单用户名称
     */
    @ApiModelProperty(value = "下单用户名称")
    private String orderUserName;

    /**
     * 账号id
     */
    @ApiModelProperty(value = "账号id")
    private Long accountId;

    /**
     * 账号
     */
    @ApiModelProperty(value = "账号")
    private String account;

    /**
     * 角色职业id
     */
    @ApiModelProperty(value = "角色职业id")
    private Long roleId;

    /**
     * 角色职业名称
     */
    @ApiModelProperty(value = "角色职业名称")
    private String roleName;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 订单快照
     */
    @ApiModelProperty(value = "订单快照")
    private OrderInfoSnapshotDTO orderInfoSnapshot;

}
